<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Asigna_convalida extends MN_Controller
{
    
    function __construct() {
        parent::__construct();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Docente_Model');
        $this->load->model('Periodos_Model');
        $this->load->model('Pensum_Model');
        $this->load->model('Carrera_Model');
        $this->load->model('Ciclos_Model');
        $this->load->model('Estudiante_Model');
        $this->load->model('Cursa_Model');
        $this->load->model('Reportes_Model');
        $this->load->model('Homologar_Model');
        $this->load->library('expediente');
    }
    
    public function index() {
        
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
    }
    
    public function inicio() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        
        $this->data['periodos'] = $this->Periodos_Model->getListado();
        
        //$this->data['periodos'] = $this->Periodos_Model->getPeriodoActivo();
        $this->data['carrera'] = $this->Carrera_Model->getListado();
        
        $periodo = $this->uri->segment(3);
        $ide_car = $this->uri->segment(4);
        $ide_pen = $this->uri->segment(5);
        $codigo_cic = $this->uri->segment(6);
        
        //$seccion = $this->uri->segment(7);
        //$paralelo = $this->uri->segment(8);
        
        if (!empty($periodo) && $periodo != - 1) {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = $periodo;
        } 
        else {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = - 1;
            
            //$periodo = $this->data['periodos'][0];
            
            
        }
        
        if (!empty($ide_car) && $ide_car != - 1) {
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
            $this->data['ide_car'] = $ide_car;
            
            //$this->data['ide_pen'] = -1;
            
            
        } 
        else {
            $this->data['ide_car'] = - 1;
        }
        if (!empty($ide_pen) && $ide_pen != - 1) {
            $this->data['ciclo'] = $this->Ciclos_Model->getCiclosPensum($ide_pen);
            $this->data['ide_pen'] = $ide_pen;
        } 
        else {
            $this->data['ide_pen'] = - 1;
        }
        if (!empty($codigo_cic) && $codigo_cic != - 1) {
            
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic);
            $this->data['codigo_cic'] = $codigo_cic;
        } 
        else {
            $this->data['codigo_cic'] = - 1;
        }
        
        if (isset($_POST['btn1'])) {
            
            //$cod=$this->input->post('ide_pen');
            
            $carr = $this->Carrera_Model->getDatosCarrera($ide_car);
            $this->data['nom_car'] = $carr[0]['nombre_car'];
            $this->data['ide_lec'] = $periodo['ide_lec'];
        }
        $this->_render('asigna_convalida/new');
    }
    
    public function procesar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        
        $ide_lec = $this->input->post('ide_lec');
        $ide_car = $this->input->post('ide_car');
        $ide_pen = $this->input->post('ide_pen');
        $ide_ciclo = $this->input->post('codigo_cic');
        $seccion = $this->input->post('seccion');
        $paralelo = $this->input->post('paralelo');
        $this->data['ide_lec'] = $ide_lec;
        $this->data['ide_car'] = $ide_car;
        $this->data['ide_pen'] = $ide_pen;
        $this->data['ide_ciclo'] = $ide_ciclo;
        $this->data['seccion'] = $seccion;
        $this->data['paralelo'] = $paralelo;
        
        if (isset($_POST['listar'])) {
            $seccion = 0;
            $this->data['listar'] = 1;
        }
        
        $this->data['nom_seccion'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FIN DE SEMANA"));
        
        $arreglo = array();
        
        if ($ide_lec > 0 && $ide_car > 0 && $ide_pen > 0 && $ide_ciclo > 0 && $seccion > 0) {
            $arreglo = $this->Reportes_Model->getAlumnosConvalidan($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $this->data['nombre_car'] = (!empty($arreglo) ? $arreglo[0]['nombre_car'] : "SIN DATOS");
                $this->data['nombre_cic'] = (!empty($arreglo) ? $arreglo[0]['nombre_cic'] : "SIN DATOS");
                
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
            }
            
            $this->data['reporte'] = $arreglo;
            
            //print_r($arreglo);
            $this->_render('asigna_convalida/lista1');
        } 
        else {
            
            //if ($ide_lec >0 && $ide_car <0 && $ide_pen<0 && $ide_ciclo<0 && $seccion>0) {
            $arreglo = $this->Reportes_Model->getAlumnosConvalidan($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
                
                //echo ($ide_lec.$ide_car.$ide_pen.$ide_ciclo.$seccion);
                if (isset($_POST['listar'])) {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'seccion', false);
                } 
                else {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'nombre_car', false);
                }
            }
            
            $this->data['reporte'] = $arreglo;
            $this->_render('asigna_convalida/lista2');
        }
        
        //$this->_render('rpt_inscrip/lista1');
        
        
    }
    
    public function presentardatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        
        $this->load->model('Matricula_Model');
        $this->load->model('Materia_Model');
        $this->load->model('Expediente_Model');
        $this->load->model('Arrastre_Model');

        
        //$this->load->model('Cursa_Model');
        $this->session->unset_userdata('ses_reasigna');
        $id_matr = $this->uri->segment(3);
        
        $this->data['inscrito'] = $this->Matricula_Model->getDatosMatricula($id_matr);
        $cursa = $this->Cursa_Model->getDatosCursa($id_matr);
        if (empty($modo_mat)) {
            $modo_mat = $this->data['inscrito'][0]['modo_mat'];
        }
        $this->data["lista"] = $this->Periodos_Model->getListado();
        $ide_lec = $this->Periodos_Model->getDatosPeriodo($cursa[0]['periodos_lectivos_ide_lec']);
        
        $ide_car = $this->Carrera_Model->getDatosCarrera($cursa[0]['ide_car']);
        $ide_pen = $this->Pensum_Model->getDatosPensum($cursa[0]['ide_pen']);
        $ide_ciclo = $this->Ciclos_Model->getDatosCiclo($cursa[0]['ide_cic']);
        
        $cod_pers = $this->Estudiante_Model->getDatosIdePers($cursa[0]['estudiante_ide_est']);
        $seccion = $cursa[0]['seccion'];
        $paralelo = $cursa[0]['paralelo'];
        
        $materias = $this->Cursa_Model->getCursaDistributivo($id_matr);
        $ciclos = $this->Ciclos_Model->getCiclosPensum($ide_pen[0]['ide_pen']);
        $estudiante = $this->Estudiante_Model->getDatosEstudiante($cod_pers);

        
        $malla_aux = array();
        foreach ($ciclos as $key => $row) {
            $aux = $this->Materia_Model->getListado($row['ide_cic']);
            
            //print_r($aux);
            $malla_aux[] = $aux;
        }

        $expediente= $this->expediente->getExpediente($cod_pers,$ide_pen[0]['ide_pen'],$estudiante,$cursa[0]['ide_car']);
        //print_r($materias);
        //echo ("<br><br><br>");
        $pos_arr=array();
        
        foreach ($materias as $j => $row1) {
            foreach ($malla_aux as $i => $mat) {
            
            //quitar materias que actualmente se ha matriculado
            foreach ($mat as $key => $row) {
                    if ($row['ide_mat']==$row1['ide_mat']) {
                        unset($malla_aux[$i][$key]);
                        //echo ("encontrado ".$row['nombre_mat']);
                        break;
                        
                    } 
                    //break;
                    
                    
                }
            }
        }
        //print_r($aux_pos);
        
        $this->data['estudiante'] = $estudiante;
        $this->data['ide_lec'] = $ide_lec[0]['ide_lec'];
        $this->data['ide_car'] = $ide_car[0]['ide_car'];
        $this->data['ide_pen'] = $ide_pen[0]['ide_pen'];
        $this->data['ide_ciclo'] = $ide_ciclo[0]['ide_cic'];
        $this->data['seccion'] = $seccion;
        
        $this->data['ide_lec_nom'] = $ide_lec[0]['descripcion_lec'];
        $this->data['ide_car_nom'] = $ide_car[0]['nombre_car'];
        $this->data['ide_pen_nom'] = $ide_pen[0]['descripcion_pen'];
        $this->data['ide_ciclo_nom'] = $ide_ciclo[0]['nombre_cic'];
        
        
        $aux_malla = array();
        
        //quitar materias aprobadas de la malla
        if (!empty($expediente)) {
            
            //print_r($malla_aux);
            foreach ($malla_aux as $i => $mat) {
                foreach ($mat as $key => $row) {
                    $no_existe = false;
                    if (!empty($expediente)) {
                        foreach ($expediente as $j => $row1) {
                            $ide_mat = $row1['ide_mat'];
                            
                            //if ($row['ide_mat'] == $ide_mat && $row1['cond_alumno']) {
                            if ($row['ide_mat'] == $ide_mat && !empty($row['docente'])) {
                                unset($expediente[$j]);
                                
                                //echo "si esta! " . $row['nombre_mat'] .'--' ;
                                $no_existe = TRUE;
                                break;
                            } 
                            else {
                                
                                //echo "no esta .." . $row['nombre_mat'].'--';
                                $no_existe = FALSE;
                            }
                        }
                        if (!$no_existe) $aux_malla[] = $row;
                    } 
                    else {
                        $aux_malla[] = $row;
                    }
                }
            }
        }else{
                foreach ($malla_aux as $i => $mat) {
                            
                            //quitar materias que actualmente se ha matriculado
                            foreach ($mat as $key => $row) {
                                $aux_malla[] = $row;

                            }
                        }            

        }
        
        //print_r($malla_aux);
        
        $this->data['seccion_nom'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FINES DE SEMANA"));
        $this->data['paralelo_nom'] = $paralelo;
        
        //$this->data['nro_mat'] = $[0][''];
        
        $this->data['nro_cup'] = $cursa[0]['cupo_cur'];
        
        $this->data['id_matr'] = $id_matr;
        $this->data['modo_mat'] = $modo_mat;
        $this->data['materias'] = $aux_malla;//(count($aux_malla)>0?$aux_malla:$malla_aux);
        
        //print_r($aux_malla);

        
        $this->_render('asigna_convalida/procesom');
    }
    
    
    public function modificadatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        $this->load->model('Calificacion_model');
        $id_matr=$this->input->post('id_matr');

        $nro_filas = $this->input->post('nro_filas');

        if ($nro_filas > 0) {
            for ($i = 1; $i <= $nro_filas; $i++) {
                //echo ("<br>");
                if (isset($_POST['addmat' . ($i - 1)])) {
                    $nota_mat= $this->input->post('nota' . ($i - 1));
                    //echo $nota_mat;


                    $cursa = array(
                        "periodos_lectivos_ide_lec" => $this->input->post('ide_lec'),
                        "ide_car" => $this->input->post('ide_car'),
                        "ide_pen" => $this->input->post('ide_pen'),
                        "ide_cic" => $this->input->post('ide_cic' . ($i - 1)),
                        "materia_ide_mat" => $this->input->post('ide_mat' . ($i - 1)),
                        "docente_ide_doc" => -1,
                        "matriculas_id_matr" => $id_matr,
                        "seccion" => 1,
                        "paralelo" => "A",
                        "estudiante_ide_est" => $this->input->post('ide_est'),
                        "estado_cur" => 0, 
                        "cant_cur" => 0, 
                        "cupo_cur" => 0,
                        "reasig_arrastre_cur" => 0,
                        "observa_cur" => "HOMOLOGA",
                        "eliminado" => 0);
                    $ide_cursa=$this->Cursa_Model->grabarCursa($cursa);
                    $notas = array(
                        "evacont1_cal" => ($nota_mat*0.6),
                        "exam1_cal" => ($nota_mat*0.4),
                        "asiste1_cal" => 100,
                        "fecha_exa1" => date("Y-m-d"),
                        "obs1_cal" => "HOMOLOGA",
                        "evacont2_cal" => ($nota_mat*0.6),
                        "exam2_cal" => ($nota_mat*0.4),
                        "asiste2_cal" => 100,
                        "fecha_ex2" => date("Y-m-d"),
                        "obs2_cal" => "HOMOLOGA",
                        "suple_cal" => 0,
                        "fecha_sup" => NULL,
                        "obs3_cal" => "NINGUNA",
                        "cursa_ide_cur" => $ide_cursa,
                        "ingnot1" =>  1,
                        "ingnot2" =>  1,
                        "supnot2" =>  0,
                        "total1" => $nota_mat,
                        "total2" => $nota_mat,
                        "obsevaFinal" => "HOMOLOGA");
                    $ide_cal=$this->Calificacion_model->crearCalificaciones($notas); 


                    $homologa = array(
                        "matriculas_id_matr" => $id_matr,
                        "materia_ide_mat" =>  $this->input->post('ide_mat' . ($i - 1)),
                        "ide_cur" => $ide_cursa,
                        "ide_cal" => $ide_cal,
                        "nota_hom" => $nota_mat,
                        "fecha_hom" => date("Y-m-d"),
                        "obseva_hom" => "HOMOLOGA"); 
                    $this->Homologar_Model->grabarHomolagacion($homologa);
                    //print_r($homologa);                
                    

                    
                }

                

                //$this->_render('matantiguo/new');
                
            }
        } 
        redirect("asigna_convalida/presentardatos/$id_matr");       
        
        
    }
    
    function orderMultiDimensionalArray($toOrderArray, $field, $inverse = false) {
        $position = array();
        $newRow = array();
        foreach ($toOrderArray as $key => $row) {
            $position[$key] = $row[$field];
            $newRow[$key] = $row;
        }
        if ($inverse) {
            arsort($position);
        } 
        else {
            asort($position);
        }
        $returnArray = array();
        foreach ($position as $key => $pos) {
            $returnArray[] = $newRow[$key];
        }
        return $returnArray;
    }
    
   
    
    public function eliminar() {
        
        //$this->load->model('Cursa_Model');
        $this->load->model('Calificacion_model');
        $ide_hom = $this->uri->segment(3);
        $id_matr = $this->uri->segment(4);
        $homologa=$this->Homologar_Model->getDatosHomologacion($ide_hom);
        
        $this->Cursa_Model->eliminaFisicaCursaMat($homologa[0]['ide_cur']);
        $this->Calificacion_model->eliminaFisica($homologa[0]['ide_cal']);
        $this->Homologar_Model->EliminarHomologacion($ide_hom);
        //reasigno el arraste con el valor de 1
        $this->data['msj_del'] = "Se ha eliminado la Homoloagacion de la materia ";
        $this->data['tit_del'] = "ELIMINACION DE HOMOLOGACIONES";
        $this->data['volver'] = "asigna_convalida/presentardatos/$id_matr";
        
        $this->_render('template/msj_error');
    }
}
